<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core" 
                xmlns:ui="http://java.sun.com/jsf/facelets" 
                xmlns:p="http://primefaces.org/ui"
                template="/template/plantilla.xhtml"
                xmlns:c="http://java.sun.com/jsp/jstl/core">
    <ui:define name="title"><h:outputText value="Sinetcom - Ingreso de Contratos"></h:outputText></ui:define>
    <ui:define name="menu"><ui:include src="/menu/menu.xhtml" /></ui:define>
    <ui:define name="content">
        <f:view contentType="text/html">
            <h:head/>        
            <h:body>                                    
                <h:form id="nuevoContrato" enctype="multipart/form-data">
<!--                    <p:dialog widgetVar="statusDialog" modal="true" draggable="false" closable="false" resizable="false" showHeader="false">
                        <p:graphicImage library="images" name="ajax_loader.gif" />
                    </p:dialog>-->
                    <p:panelGrid id="contrato" columns="2">
                        <f:facet name="header">
                            <h:outputText value="Ingreso de nuevo contrato"></h:outputText>
                        </f:facet>

                        <p:outputLabel for="contratoNumero" value="Número de Contrato:"/>
                        <p:inputText id="contratoNumero" value="#{ingresoContratoBean.numeroContrato}" required="true"/>

                        <p:outputLabel for="contratoTipo" value="Tipo de Contrato:"/>
                        <p:selectOneMenu id="contratoTipo" value="#{ingresoContratoBean.tipoContrato}" required="true">                    
                            <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""/>
                            <f:selectItems value="#{ingresoContratoBean.tiposContrato}" var="tipos" itemLabel="#{tipos.tipo}" itemValue="#{tipos.id}"/>
                        </p:selectOneMenu>

                        <p:outputLabel for="clienteEmpresa" value="Cliente:"/>
                        <p:selectOneMenu id="clienteEmpresa" value="#{ingresoContratoBean.idCliente}" filter="true" filterMatchMode="startsWith" required="true">
                            <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""/>
                            <f:selectItems value="#{ingresoContratoBean.clientes}" var="empresa" itemLabel="#{empresa.nombreComercial}" itemValue="#{empresa.id}"/>
                            <p:ajax listener="#{ingresoContratoBean.cargarContactosDeCliente()}" update="contratoAdministrador" onstart="statusDialog.show()" onsuccess="statusDialog.hide()"></p:ajax>
                        </p:selectOneMenu>               

                        <p:outputLabel for="contratoSla" value="SLA:"/>
                        <p:selectOneMenu id="contratoSla" value="#{ingresoContratoBean.numSla}" required="true">
                            <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""/>
                            <f:selectItems value="#{ingresoContratoBean.slas}" var="sla" itemLabel="P.A: #{sla.tiempoRespuestaPrioridadAlta} h, P.M: #{sla.tiempoRespuestaPrioridadMedia} h, P.B: #{sla.tiempoRespuestaPrioridadBaja} h - Disponibilidad: #{sla.tipoDisponibilidadid.disponibilidad}" itemValue="#{sla.id}"/>
                        </p:selectOneMenu>

                        <p:outputLabel for="contratoManager" value="Account Manager Asignado:"/>
                        <p:selectOneMenu id="contratoManager" value="#{ingresoContratoBean.numAccountManager}" required="true">
                            <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""/>
                            <f:selectItems value="#{ingresoContratoBean.usuarios}" var="Accounts" itemLabel="#{Accounts.nombre} #{Accounts.apellido}" itemValue="#{Accounts.id}" />
                        </p:selectOneMenu>

                        <p:outputLabel for="contratoAdministrador" value="Administrador de Contrato:"/>
                        <p:selectOneMenu id="contratoAdministrador" value="#{ingresoContratoBean.numAdminContrato}" required="true">
                            <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""/>
                            <f:selectItems value="#{ingresoContratoBean.contactos}" var="AdminC" itemLabel="#{AdminC.nombre}" itemValue="#{AdminC.id}" />
                        </p:selectOneMenu>

                        <h:panelGroup>
                            <p:outputLabel for="contratoFechaSuscripcion" value="Fecha de Suscripción:"/>
                            <h:link id="tooltip1" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip1" value="Fecha en la que se firma el contrato por ambas partes."></p:tooltip>
                        </h:panelGroup>
                        <p:calendar id="contratoFechaSuscripcion" value="#{ingresoContratoBean.fechaSuscripcion}" showOn="button" required="true"/>

                        <h:panelGroup>
                            <p:outputLabel for="contratoObjeto" value="Objeto:"/>
                            <h:link id="tooltip2" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip2" value="Objeto del contrato, según se registra en el contrato original."></p:tooltip>
                        </h:panelGroup>
                        <p:inputTextarea id="contratoObjeto" cols="40" rows="8" value="#{ingresoContratoBean.objeto}" required="true"/>
                        
                        <h:panelGroup>
                            <p:outputLabel for="contratoPrecio" value="Precio ($):"/>
                            <h:link id="tooltip3" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip3" value="Precio total del proyecto."></p:tooltip>
                        </h:panelGroup>
                        <p:inputText id="contratoPrecio" type="number" value="#{ingresoContratoBean.precio}" required="true"/>

                        <h:panelGroup>
                            <p:outputLabel for="contratoValidez" value="Plazo del Contrato (meses):"/>
                            <h:link id="tooltip4" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip4" value="Duración del contrato en meses a partir de la fecha en que se hace efectivo el contrato."></p:tooltip>
                        </h:panelGroup>
                        <p:inputText id="contratoValidez" type="number" value="#{ingresoContratoBean.tiempoValidez}" required="true"/>

                        <h:panelGroup>
                            <p:outputLabel for="contratoGarantiaTecnica" value="Garantía Técnica (años):"/>
                            <h:link id="tooltip5" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip5" value="Tiempo en años de soporte/garantía en partes y piezas de la solución."></p:tooltip>
                        </h:panelGroup>
                        <p:inputText id="contratoGarantiaTecnica" type="number" value="#{ingresoContratoBean.garantiatecnica}"/>

                        <h:panelGroup>
                            <p:outputLabel for="contratoFechaInicioGarantiaTecnica" value="Fecha Inicio Garantía Técnica (E/R del Proyecto):"/>
                            <h:link id="tooltip6" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip6" value="Fecha en la que se entrega por completo el proyecto, después de entregar funcionando la solución, con su respectiva documentación."></p:tooltip>
                        </h:panelGroup>
                        <p:calendar id="contratoFechaInicioGarantiaTecnica" value="#{ingresoContratoBean.fechaInicioGTecnica}" showOn="button"/>
                        
                        <h:panelGroup>
                            <p:outputLabel for="actaEntregaDelProyecto" value="Acta de E/R del Proyecto (PDF):" />
                            <h:link id="tooltip7" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip7" value="Escaneado del original del acta de entrega recepción."></p:tooltip>
                        </h:panelGroup>
                        <p:fileUpload id="actaEntregaDelProyecto" required="true" mode="advanced" auto="true" sizeLimit="52428800" allowTypes="/(\.|\/)(pdf)$/" update=":growl" fileUploadListener="#{ingresoContratoBean.cargarActaDeERProyecto}"/>

                        <h:panelGroup>
                            <p:outputLabel for="contratoDigital" value="Contrato Digitalizado (PDF):"/>
                            <h:link id="tooltip8" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip8" value="Escaneado de la copia original del contrato."></p:tooltip>
                        </h:panelGroup>
                        <p:fileUpload id="contratoDigital" required="true" mode="advanced" auto="true" sizeLimit="52428800" allowTypes="/(\.|\/)(pdf)$/" update=":growl" fileUploadListener="#{ingresoContratoBean.cargarContratoDigital}"/>
                        
                        <h:panelGroup>
                            <p:outputLabel for="srvSoporteMantenimiento" value="Garantía Técnica Sinetcom (años):"/>
                            <h:link id="tooltip9" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip9" value="Soporte en años dado únicamente por la empresa, sin tomar en cuenta el proveedor."></p:tooltip>
                        </h:panelGroup>
                        <p:inputText id="srvSoporteMantenimiento" type="number" value="#{ingresoContratoBean.srvSoportemantenimiento}" required="true"/>

                        <h:panelGroup>
                            <p:outputLabel for="contratoRepuestos" value="¿Incluye Repuestos?:"/>
                            <h:link id="tooltip10" disabled="true" style="margin-left: 10px;">
                                <p:graphicImage library="images" height="20px" width="20px" name="questionmark.png"></p:graphicImage>
                            </h:link>
                            <p:tooltip for="tooltip10" value="¿Se incluye garantía en repuestos de partes y piezas para los equipos adquiridos en este contrato?."></p:tooltip>
                        </h:panelGroup>
                        <p:selectOneRadio id="contratoRepuestos" value="#{ingresoContratoBean.repuestos}" required="true">
                            <f:selectItem itemLabel="Si" itemValue="true"/>
                            <f:selectItem itemLabel="No" itemValue="false"/>
                        </p:selectOneRadio>

                        <p:outputLabel for="contratoHorasSoporteAno" value="Horas de Soporte Anual:"/>
                        <p:inputText id="contratoHorasSoporteAno" type="number" value="#{ingresoContratoBean.soporteAnual}" required="true"/>

                        <p:outputLabel for="contratoHorasSoporteUtilizadas" value="Horas de Soporte Utilizadas:"/>
                        <p:inputText id="contratoHorasSoporteUtilizadas" type="number" value="#{ingresoContratoBean.soporteutilizado}" required="true"/>

                        <p:outputLabel for="contratoFechaFacturacion" value="Fecha Facturación de Contrato:"/>
                        <p:calendar id="contratoFechaFacturacion" value="#{ingresoContratoBean.fechaFacturacion}" showOn="button"/>

                        <p:outputLabel for="contratoFacturaNumero" value="Factura Número:"/>
                        <p:inputText id="contratoFacturaNumero" value="#{ingresoContratoBean.numeroFactura}"/>

                        <p:outputLabel for="contratoFechaEntregaRecepcion" value="Fecha Entrega Recepción de equipos:"/>
                        <p:calendar id="contratoFechaEntregaRecepcion" value="#{ingresoContratoBean.fechaEntregaRecepcion}" showOn="button"/>                

                        <p:outputLabel for="actaEREquipos" value="Acta de E/R de Equipos:"/>
                        <p:fileUpload id="actaEREquipos" required="true" mode="advanced" auto="true" sizeLimit="52428800" allowTypes="/(\.|\/)(pdf)$/" update=":growl" fileUploadListener="#{ingresoContratoBean.cargarActaDeEREquipos}"/>
                        
                        <p:outputLabel for="observaciones" value="Observaciones:"/>
                        <p:inputTextarea id="observaciones" cols="40" rows="8" maxlength="1024" required="false" value="#{ingresoContratoBean.observaciones}"/>
                        
                        <p:outputLabel for="contratoPagos" value="Pagos:"/>
                        <p:commandButton id="contratoPagos" value="Ver Pagos" process="contratoFechaSuscripcion, contratoPrecio, contratoValidez" onclick="PF('fechas').show();" />

                        <p:outputLabel for="contratoGarantias" value="Garantías Económicas:"/>
                        <p:commandButton id="contratoGarantias" value="Ver Garantías E." process="contratoPrecio" onclick="PF('garantias').show();"/>

                        <p:outputLabel for="contratoVisitasTecnicas" value="Visitas Técnicas:"/>
                        <p:commandButton id="contratoVisitasTecnicas" value="Ver Visitas Técnicas" process="contratoFechaSuscripcion, contratoValidez" onclick="PF('visitasT').show();"></p:commandButton>

                        <p:outputLabel for="contratoCursos" value="Capacitaciones:"/>
                        <p:commandButton id="contratoCursos" value="Ver Capacitaciones" process="@none" onclick="PF('cursos').show();"></p:commandButton>
                        
                        <f:facet name="footer">
                            <p:commandButton id="btnGrabar" value="Grabar" process=":nuevoContrato:contrato" update="@form" actionListener="#{ingresoContratoBean.grabarContrato}" onstart="statusDialog.show()" onsuccess="statusDialog.hide()">
                            </p:commandButton>
                        </f:facet>
                    </p:panelGrid> 

                    <p:dialog header="Insertar Fechas de Pago" widgetVar="fechas" showEffect="fade" hideEffect="fade" modal="true">                   
                        <h:panelGrid id="prueba" columns="2" columnClasses="colum" cellpadding="5">    
                            <p:outputLabel for="cantidadPagos" value="Cantidad de Pagos"/>
                            <p:inputText id="cantidadPagos" value="#{ingresoContratoBean.cantidadPagos}">
                                <p:ajax event="keyup" listener="#{ingresoContratoBean.calcularFechasPagos()}" update="pagos" onstart="statusDialog.show()" oncomplete="statusDialog.hide()"></p:ajax>
                            </p:inputText>
                        </h:panelGrid>  
                        <p:dataTable id="pagos" value="#{ingresoContratoBean.pagos}" var="pago" editable="true">
                            <f:facet name="header">
                                <h:outputText value="Pagos"></h:outputText>
                            </f:facet>
                            <p:column headerText="Orden">
                                <h:outputText value="#{pago.orden}"></h:outputText>
                            </p:column>
                            <p:column headerText="Monto">
                                <p:cellEditor>
                                    <f:facet name="output"><h:outputText value="#{ingresoContratoBean.formatoDosDecimales(pago.monto)}"></h:outputText></f:facet>
                                    <f:facet name="input"><p:inputText value="#{pago.monto}"></p:inputText></f:facet>
                                </p:cellEditor>
                            </p:column>
                            <p:column headerText="Fecha">
                                <p:cellEditor>
                                    <f:facet name="output"><h:outputText value="#{ingresoContratoBean.formatoCortoDeFecha(pago.plazo)}"></h:outputText></f:facet>
                                    <f:facet name="input"><p:calendar value="#{pago.plazo}" pattern="dd/MM/yyyy"></p:calendar></f:facet>
                                </p:cellEditor>
                            </p:column>
                            <p:column style="width:32px">
                                <p:rowEditor />
                            </p:column>
                        </p:dataTable>
                    </p:dialog>
                    <p:dialog header="Garantías Económicas" widgetVar="garantias" height="500" style="overflow: scroll;" showEffect="fade" hideEffect="fade" modal="true">
                        <p:panel id="garantiasEconomicas">
                            <p:panelGrid columns="2" >
                                <f:facet name="header">
                                    <h:outputText value="Ingreso de Garantía Económica"></h:outputText>
                                </f:facet>
                                <p:outputLabel for="numeroPoliza" value="Número de Póliza:"/>
                                <p:inputText id="numeroPoliza" value="#{ingresoContratoBean.nuevaGarantiaEconomica.numeroPoliza}" maxlength="50" required="true"/>
                                <p:outputLabel for="tipoGarantia" value="Tipo de Garantía:"/>
                                <p:selectOneMenu id="tipoGarantia" value="#{ingresoContratoBean.tipoGarantia}" required="true" >
                                    <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""></f:selectItem>
                                    <f:selectItems var="tipoGarantia" value="#{ingresoContratoBean.tipoGarantias}" itemLabel="#{tipoGarantia.tipo}" itemValue="#{tipoGarantia.id}"></f:selectItems>
                                </p:selectOneMenu>
                                <p:outputLabel for="porcentaje" value="Porcentaje:"/>
                                <p:inputText id="porcentaje" value="#{ingresoContratoBean.nuevaGarantiaEconomica.porcentaje}" maxlength="3" required="true" validatorMessage="Porcentaje max. 100%">
                                    <p:ajax event="keyup" listener="#{ingresoContratoBean.calcularValorDeGarantiaE()}" update="valor" process="contratoPrecio, porcentaje"></p:ajax>
                                    <f:validateDoubleRange for="porcentaje" maximum="100" minimum="1" ></f:validateDoubleRange>
                                </p:inputText>
                                <p:outputLabel for="valor" value="Valor:"/>
                                <p:inputText id="valor" value="#{ingresoContratoBean.nuevaGarantiaEconomica.valor}" required="true" readonly="true"></p:inputText>
                                <p:outputLabel for="fechaInicio" value="Fecha de Inicio:"/>
                                <p:calendar id="fechaInicio" value="#{ingresoContratoBean.nuevaGarantiaEconomica.fechaInicio}" pattern="dd/MM/yyyy" required="true" showOn="button"></p:calendar>
                                <p:outputLabel for="fechaFin" value="Fecha de Fin:"/>
                                <p:calendar id="fechaFin" value="#{ingresoContratoBean.nuevaGarantiaEconomica.fechaFin}" pattern="dd/MM/yyyy" required="true" showOn="button"></p:calendar>
                                <p:outputLabel for="renovacion" value="¿Es renovación?:"/>
                                <p:selectOneRadio id="renovacion" value="#{ingresoContratoBean.nuevaGarantiaEconomica.renovacion}" required="true">
                                    <f:selectItem itemLabel="Si" itemValue="true"></f:selectItem>
                                    <f:selectItem itemLabel="No" itemValue="false"></f:selectItem>
                                </p:selectOneRadio>
                                <p:outputLabel for="poliza" value="Póliza Digital:"/>
                                <p:fileUpload id="poliza" mode="advanced" sizeLimit="52428800" auto="true" allowTypes="/(\.|\/)(pdf)$/" multiple="false" update=":growl" fileUploadListener="#{ingresoContratoBean.cargarPoliza}" ></p:fileUpload>
                                <f:facet name="footer">
                                    <p:commandButton id="agregarGarantia" value="Agregar Garantía" process=":nuevoContrato:garantiasEconomicas" update=":nuevoContrato:garantiasEconomicas" actionListener="#{ingresoContratoBean.agregarGarantia}" onstart="statusDialog.show()" oncomplete="statusDialog.hide()"></p:commandButton>
                                </f:facet>
                            </p:panelGrid>
                            <br/>
                            <br/>
                            <p:dataTable id="garantias" value="#{ingresoContratoBean.garantiasE}" rowIndexVar="rowId" var="garantia">
                                <f:facet name="header">
                                    <h:outputText value="Garantías Económicas Ingresadas"></h:outputText>
                                </f:facet>
                                <p:column headerText="Tipo de Garantía">
                                    <h:outputText value="#{garantia.tipoGarantiaid.tipo}"></h:outputText>
                                </p:column>
                                <p:column headerText="Porcentaje">
                                    <h:outputText value="#{garantia.porcentaje}"></h:outputText>
                                </p:column>
                                <p:column headerText="Valor">
                                    <h:outputText value="#{garantia.valor}"></h:outputText>
                                </p:column>
                                <p:column headerText="Fecha Inicio">
                                    <h:outputText value="#{ingresoContratoBean.formatoCortoDeFecha(garantia.fechaInicio)}"></h:outputText>
                                </p:column>
                                <p:column headerText="Fecha Fin">
                                    <h:outputText value="#{ingresoContratoBean.formatoCortoDeFecha(garantia.fechaFin)}"></h:outputText>
                                </p:column>
                                <p:column headerText="Eliminar">
                                    <p:commandButton icon="ui-icon-trash" update=":nuevoContrato:garantias" process="@this" actionListener="#{ingresoContratoBean.eliminarGarantia}" onstart="statusDialog.show()" onsuccess="statusDialog.hide()">
                                        <f:attribute name="garantiaIndex" value="#{rowId}"></f:attribute>
                                        <p:confirm header="Confirmación" message="¿Está seguro que desea eliminar esta garantía?" icon="ui-icon-alert"></p:confirm>
                                    </p:commandButton>
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                    </p:dialog>
                    <p:dialog header="Visitas Técnicas" widgetVar="visitasT" height="500" style="overflow: scroll;" showEffect="fade" hideEffect="fade" modal="true">
                        <p:panel id="visitasTecnicas">
                            <p:panelGrid columns="2">
                                <p:outputLabel for="visitasPorContrato" value="Visitas por contrato:"></p:outputLabel>
                                <p:inputText id="visitasPorContrato" value="#{ingresoContratoBean.cantidadDeVisitasPorA}" required="true"></p:inputText>
                                <p:outputLabel for="tipoDeVisita" value="Tipo de Visita:"></p:outputLabel>
                                <p:selectOneMenu id="tipoDeVisita" value="#{ingresoContratoBean.tipoDeVisita}" required="true">
                                    <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""></f:selectItem>
                                    <f:selectItems value="#{ingresoContratoBean.tipoDeVisitas}" var="tipoVisita" itemLabel="#{tipoVisita.nombre}" itemValue="#{tipoVisita.id}"></f:selectItems>
                                </p:selectOneMenu>
                                <p:outputLabel for="descripcionVT" value="Descripción Visitas Técnica:"></p:outputLabel>
                                <p:inputText id="descripcionVT" value="#{ingresoContratoBean.descripcionVisitaT}"></p:inputText>
                                <f:facet name="footer">
                                    <p:commandButton value="Agregar Visitas Técnicas" actionListener="#{ingresoContratoBean.calcularFechasVisitasTecnicas}" process=":nuevoContrato:visitasTecnicas" update=":nuevoContrato:visitasTecnicas" onstart="statusDialog.show()" oncomplete="statusDialog.hide()" ></p:commandButton>
                                    <p:commandButton value="Limpiar Visitas Técnicas" actionListener="#{ingresoContratoBean.limpiarVisitasTecnicas}" process="@this" update=":nuevoContrato:visitasTecnicas"></p:commandButton>
                                </f:facet>
                            </p:panelGrid>
                            <br/>
                            <p:dataTable id="visitasT" value="#{ingresoContratoBean.visitasTecnicas}" rowIndexVar="rowId" editable="true" var="visitaT">
                                <f:facet name="header">
                                    <h:outputText value="Visitas Técnicas"></h:outputText>
                                </f:facet>
                                <p:column headerText="Tipo de Visita">
                                    <h:outputText value="#{visitaT.tipoDeVisitaid.nombre}"></h:outputText>
                                </p:column>
                                <p:column headerText="Fecha">
                                    <p:cellEditor>
                                        <f:facet name="output"><h:outputText value="#{ingresoContratoBean.formatoCortoDeFecha(visitaT.fecha)}"></h:outputText></f:facet>
                                        <f:facet name="input"><p:calendar value="#{visitaT.fecha}" pattern="dd/MM/yyyy"></p:calendar></f:facet>
                                    </p:cellEditor>
                                </p:column>
                                <p:column headerText="Descripción">
                                    <p:cellEditor>
                                        <f:facet name="output"><h:outputText value="#{visitaT.descripcion}"></h:outputText></f:facet>
                                        <f:facet name="input"><p:inputText value="#{visitaT.descripcion}"></p:inputText></f:facet>
                                    </p:cellEditor>
                                </p:column>
                                <p:column style="width:32px">
                                    <p:rowEditor />
                                </p:column>
                                <p:column headerText="Eliminar">
                                    <p:commandButton icon="ui-icon-trash" update=":nuevoContrato:visitasT" process="@this" actionListener="#{ingresoContratoBean.eliminarVisitaTecnica}" onstart="statusDialog.show()" onsuccess="statusDialog.hide()">
                                        <f:attribute name="visitaIndex" value="#{rowId}"></f:attribute>
                                        <p:confirm header="Confirmación" message="¿Está seguro que desea eliminar esta visita técnica?" icon="ui-icon-alert"></p:confirm>
                                    </p:commandButton>
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                    </p:dialog>
                    <p:dialog header="Capacitaciones" widgetVar="cursos" height="500" style="overflow: scroll;" showEffect="fade" hideEffect="fade" modal="true">
                        <p:panel id="cursosProgramados">
                            <p:panelGrid columns="2">
                                <f:facet name="header">
                                    <h:outputText value="Ingreso de Capacitación"></h:outputText>
                                </f:facet>
                                <p:outputLabel for="temaATratar" value="Tema a tratar:"></p:outputLabel>
                                <p:inputText id="temaATratar" value="#{ingresoContratoBean.nuevoCurso.temaATratar}" required="true"></p:inputText>
                                <p:outputLabel for="fechaInicioCurso" value="Fecha de Inicio:"></p:outputLabel>
                                <p:calendar id="fechaInicioCurso" value="#{ingresoContratoBean.nuevoCurso.fechaDeInicio}" pattern="dd/MM/yyyy" required="true"></p:calendar>
                                <p:outputLabel for="numParticipantes" value="Número de Participantes:"></p:outputLabel>
                                <p:inputText id="numParticipantes" value="#{ingresoContratoBean.nuevoCurso.numeroDeParticipantes}" required="true"></p:inputText>
                                <p:outputLabel for="numHorasTotales" value="Horas Totales del Curso:"></p:outputLabel>
                                <p:inputText id="numHorasTotales" value="#{ingresoContratoBean.nuevoCurso.numeroDeHorasTotales}" required="true"></p:inputText>
                                <p:outputLabel for="oficial" value="¿Es curso oficial?:"></p:outputLabel>
                                <p:selectOneRadio id="oficial" value="#{ingresoContratoBean.nuevoCurso.oficial}" required="true">
                                    <f:selectItem itemLabel="Si" itemValue="true"></f:selectItem>
                                    <f:selectItem itemLabel="No" itemValue="false"></f:selectItem>
                                    <p:ajax listener="#{ingresoContratoBean.limpiarNombreDeInstructor()}" update="instructorSinetcom, nombreInstructor"></p:ajax>
                                </p:selectOneRadio>
                                <p:outputLabel for="instructorSinetcom" value="Instructor de Sinetcom:"></p:outputLabel>
                                <p:selectOneMenu id="instructorSinetcom" value="#{ingresoContratoBean.instructorSinetcom}" disabled="#{ingresoContratoBean.nuevoCurso.oficial}">
                                    <f:selectItem itemLabel="#{myBundle.SelectOneMessage}" itemValue=""></f:selectItem>
                                    <f:selectItems value="#{ingresoContratoBean.tecnicos}" var="instructor" itemLabel="#{instructor.nombreCompleto}" itemValue="#{instructor.id}"></f:selectItems>
                                    <p:ajax listener="#{ingresoContratoBean.actualizarNombreDeInstructor()}" update="nombreInstructor"></p:ajax>
                                </p:selectOneMenu>
                                <p:outputLabel for="nombreInstructor" value="Nombre del Instructor:"></p:outputLabel>
                                <p:inputText id="nombreInstructor" value="#{ingresoContratoBean.nuevoCurso.nombreInstructor}" required="true" readonly="#{not ingresoContratoBean.nuevoCurso.oficial}"></p:inputText>
                                <p:outputLabel for="centroCapacitacion" value="Centro de Capacitación:"></p:outputLabel>
                                <p:inputTextarea id="centroCapacitacion" value="#{ingresoContratoBean.nuevoCurso.centroDeCapacitacion}" required="true" cols="20" rows="8"></p:inputTextarea>
                                <f:facet name="footer">
                                    <p:commandButton value="Agregar Capacitación" actionListener="#{ingresoContratoBean.agregarCurso}" process=":nuevoContrato:cursosProgramados" update=":nuevoContrato:cursosProgramados" onstart="statusDialog.show()" oncomplete="statusDialog.hide()"></p:commandButton>
                                </f:facet>
                            </p:panelGrid>
                            <br/>
                            <p:dataTable id="cursos" value="#{ingresoContratoBean.cursos}" var="curso" rowIndexVar="rowId">
                                <f:facet name="header">
                                    <h:outputText value="Capacitaciones Programadas"></h:outputText>
                                </f:facet>
                                <p:column headerText="Tema" width="30">
                                    <h:outputText value="#{curso.temaATratar}"></h:outputText>
                                </p:column>
                                <p:column headerText="Instructor">
                                    <h:outputText value="#{curso.nombreInstructor}"></h:outputText>
                                </p:column>
                                <p:column headerText="Num. Part.">
                                    <h:outputText value="#{curso.numeroDeParticipantes}"></h:outputText>
                                </p:column>
                                <p:column headerText="Num. Horas">
                                    <h:outputText value="#{curso.numeroDeHorasTotales}"></h:outputText>
                                </p:column>
                                <p:column headerText="Oficial">
                                    <h:outputText value="#{curso.oficial ? 'Si' : 'No'}"></h:outputText>
                                </p:column>
                                <p:column headerText="Fecha">
                                    <h:outputText value="#{ingresoContratoBean.formatoCortoDeFecha(curso.fechaDeInicio)}"></h:outputText>
                                </p:column>
                                <p:column headerText="Eliminar">
                                    <p:commandButton icon="ui-icon-trash" update=":nuevoContrato:cursos" process="@this" actionListener="#{ingresoContratoBean.eliminarCurso}" onstart="statusDialog.show()" onsuccess="statusDialog.hide()">
                                        <f:attribute name="cursoIndex" value="#{rowId}"></f:attribute>
                                        <p:confirm header="Confirmación" message="¿Está seguro que desea eliminar este curso?" icon="ui-icon-alert"></p:confirm>
                                    </p:commandButton>
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                    </p:dialog>
                    <p:confirmDialog global="true">
                        <p:commandButton value="Si" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check"/>
                        <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close"/>
                    </p:confirmDialog>
                    <script type="text/javascript">
                        function start() {
                            statusDialog.show();
                        }
                        function stop() {
                            statusDialog.hide();
                        }
                    </script>
                </h:form>                                      
            </h:body>
        </f:view>
    </ui:define>
</ui:composition>

